/*
 * =====================================================================================
 *
 *       Filename:  main.cc
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  01/12/2022 11:46:32 AM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  first_name last_name (fl), fl@my-company.com
 *        Company:  my-company
 *
 * =====================================================================================
 */
#include "IProductA.h"
#include "IProductB.h"
#include "IFactory.h"
#include "Factory1.h"
#include "Factory2.h"

int main() {
    IFactory* factory1 = new Factory1();
    IProductA* productA1 = factory1->ConcreteProductA();
    productA1->use();
    IProductB* productB1 = factory1->ConcreteProductB();
    productB1->eat();
    //
    IFactory* factory2 = new Factory2();
    IProductA* productA2 = factory2->ConcreteProductA();
    productA2->use();
    IProductB* productB2 = factory2->ConcreteProductB();
    productB2->eat();
    return 0;
}
